<?php
class facturacion_rpt_model extends CI_Model{
	
	function __construct(){
		parent::__construct();
	}
	
	
	
	/**
	 * 					FACTURACION
	 * **********************************************
	 * Obtiene el listado de Facturas para el reporte del dia
	 */
	public function getFacturas($fecha){
		$sql = '';
		//paginacion
		$params = array(
				'result_items_per_page' => '40',
				'result_page' 			=> (isset($_GET['pag'])? $_GET['pag']: 0)
		);
		if($params['result_page'] % $params['result_items_per_page'] == 0)
			$params['result_page'] = ($params['result_page']/$params['result_items_per_page']);
	
		$query = BDUtil::pagination("
				SELECT 
					c.id_factura, Date(c.fecha) AS fecha, c.serie, c.folio, cs.nombre_fiscal, c.status, 
					c.total, c.revisado, c.observaciones
				FROM facturas AS c
					INNER JOIN clientes_sucursales AS cs ON cs.id_sucursal = c.id_cliente
				WHERE c.fecha = '".$fecha."'
				ORDER BY (Date(c.fecha), c.serie, c.folio) DESC
				", $params, true);
		$res = $this->db->query($query['query']);
	
		$response = array(
				'fact' 				=> array(),
				'cerrado'			=> false,
				'total_rows' 		=> $query['total_rows'],
				'items_per_page' 	=> $params['result_items_per_page'],
				'result_page' 		=> $params['result_page']
		);
		if($res->num_rows() > 0){
			$response['fact'] = $res->result();
			$res_d = $this->db->query("SELECT status FROM facturas_diarias_rpt WHERE Date(fecha) = '".$fecha."'")->result();
			if(isset($res_d[0]->status))
				if($res_d[0]->status == 't')
					$response['cerrado'] = true;
		}else 
			$response['cerrado'] = true;
	
		return $response;
	}
	
	/**
	 * Actualiza la factura en el reporte de facturas del dia
	 */
	public function updateFacturasDiarias(){
		$this->db->update('facturas', 
				array('revisado' => ($_POST['revisado']=='si'? 't': 'f'),
					'observaciones' => $_POST['observaciones']), 
				"id_factura = '".$_POST['id_factura']."'");
		
		return array(true, '');
	}
	
	/**
	 * Cierra un dia en el reporte facturas del dia
	 */
	public function cerrarDiaFacturas(){
		$data = $this->getFacturas($_POST['fecha']);
		
		$coun = 0;
		foreach($data['fact'] as $itm){
			if($itm->revisado == 't')
				$coun++;
		}
		if(count($data['fact']) == $coun){
			if($coun > 0){
				$this->db->update('facturas_diarias_rpt', 
					array('status' => 't'), 
					"Date(fecha) = '".$_POST['fecha']."'");
			}
			return array(true, '');
		}
		return array(false, 'Para cerrar el día se tiene que aprobar todas las facturas.');
	}
	
	
}